build all targets in CI#1
Merged
Merged
Conversation
aleksisch
pushed a commit
that referenced
this pull request
Mar 30, 2026
Parse SF2 modulator chunks (pmod/imod) and store on SF2Zone. Full modulator evaluation per SF2 spec 9.5.3: source extraction (velocity, key, CC, pitch wheel), transform curves (concave/convex/switch, unipolar/bipolar), two-source multiplication, absolute value transform. All 10 default modulators from SF2 spec 8.4.1-8.4.10 with zone override logic. Replaces hardcoded velocity curve. Parsing: - SF2Modulator struct, parse_modulators for pmod/imod chunks (10 bytes/entry) - Source unpacking: sf2_mod_src_index/cc/negative/bipolar/type - Modulators stored on SF2Zone alongside generators Evaluation: - sf2_concave/sf2_convex: SF2 spec page 73 transform curves - sf2_mod_source_value: velocity, key, CC, pitch wheel, pitch wheel sensitivity - sf2_mod_transform_source: unipolar/bipolar, positive/negative, all 4 map types - sf2_mod_get_value: amount * transform(src1) * transform(src2), abs transform - sf2_apply_modulators: accumulate per-generator offsets from zone modulators Default modulators: - SF2_DEFAULT_MODS: 10 defaults (vel->atten, vel->filter, pressure->vib, CC1->vib, CC7->atten, CC10->pan, CC11->atten, CC91->reverb, CC93->chorus, pitchwheel->tune) - sf2_mod_identity_match + sf2_apply_default_modulators with override logic - Removed hardcoded sf2_velocity_attenuation (now handled by default mod #1) Application in sf2_create_c_voice: - Compute gen_offsets[64] from zone + global + preset modulators + defaults - Apply offsets to pitch, filter FC/Q, attenuation, pan, all LFO/env routing Also: midi_init_reverb() public function for offline rendering with reverb 20 new tests: source unpacking, evaluation (6 cases), parse counts (FluidR3=746, TimGM6mb=455), voice velocity dynamics, default mod dynamics, override logic Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aleksisch
pushed a commit
that referenced
this pull request
Apr 29, 2026
Fixes 7 review comments in one push: * MCP stdio safety (#1, #5): read_import and compile_and_collect both print warnings/failures to stdout, which corrupts the JSON-RPC protocol stream when called from the MCP server. Add `quiet : bool = false` to both helpers (default preserves CLI behavior); MCP find_duplicates passes true and surfaces failure counts via the returned envelope. * Test portability (#2, #3): replace hard-coded /tmp/... corpus path in test_find_duplicates_corpus_not_found with create_temp_file_result + immediate remove() — guaranteed-nonexistent path that works on Windows runners. * Newline-delimited paths (#4): MCP do_find_duplicates now normalizes \n to , before parse_file_list, matching the README's documented "git diff --name-only | …" pipeline use case. * Project (.das_project) plumbing (#6): add `project` to the find_duplicates schema, dispatch, and handler signature; thread through to compile_and_collect, which now takes `project : string = ""` and uses make_file_access(project) instead of the previous hardcoded "" — matching the convention used by compile_check / lint / find_symbol. * Deterministic compile order (#7): both the MCP tool and CLI main.das build a sorted array<string> from `keys(against_files)` and iterate that, instead of the unspecified-order table-key iteration. Makes per-candidate report ordering and --check exit behavior reproducible across runs. Drive-by: PERF006 fix in resolve_against_files (reserve before push loop). All test suites still green: 6987 in tests/, 54 find_dupes, 181 MCP (includes 5 updated find_duplicates tests for new signature). MCP end-to-end smoke confirms newline-delimited paths and project parameter both reach the handler. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aleksisch
pushed a commit
that referenced
this pull request
May 5, 2026
PR GaijinEntertainment#2575 review round 3 — three intertwined Option<T> bugs surfaced by Copilot. 1. Generic `sql_bind($Option<auto(TT)>)` fallback in sqlite_boost mirrors the existing `sql_storage_enum_for(type<$Option<auto(TT)>>)` pattern. Uses `_::sql_bind(default<TT>)` so caller-module adapters resolve; without `_::`, recursion runs in sqlite_boost's module and misses `@sql_json`/`@sql_blob`-generated overloads. 2. `emit_json_blob_adapters_for_struct` now unwraps Option<T> before adapter codegen. Runtime `sql_bind_to_stmt(Option<T>)` strips the Option BEFORE calling user `sql_bind`; registering the adapter for `Option<NoteData>` was dead code — actual call lands on `sql_bind(NoteData)`. Adapter dedup now naturally collapses bare T and Option<T> in the same struct (both key as T). 3. Drop the macro-time Option unwrap in `apply_schema_from` from the prior round; the witness is back to `_::sql_bind(default<field_type>)`, with rail #1 handling the unwrap uniformly. Tests: - test_96_schema_from_partial_body: @sql_json + Option, @sql_blob + Option via schema_from path (contract + roundtrip). - test_64_json_columns: standalone @sql_json + Option, plus dedup edge case (bare X + Option<X> in same struct). - test_65_blob_struct: standalone @sql_blob + Option. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.